<?php  // PHP代码开始标记

// 命名空间：固定格式，对应Controllers文件夹，确保框架能找到这个文件
namespace App\Controllers;

// 引入CodeIgniter的基础控制器类，让当前类继承其功能
use CodeIgniter\Controller;

// 定义Pages控制器类，继承Controller
class Pages extends Controller
{
    // 首页方法：访问/home时执行
    public function index()
    {
        // 准备要传递给视图的数据（标题）
        $data['title'] = 'Home Page';  // 键名'title'将在视图中使用

        // 加载页面：先加载头部模板，再加载首页内容，最后加载底部模板
        // view()方法第一个参数是视图文件路径，第二个参数是传递给视图的数据
        echo view('templates/header', $data);       // 头部导航
        echo view('pages/home', $data);             // 首页核心内容
        echo view('templates/footer');              // 底部信息
    }

    // 通用视图方法：根据页面名称显示不同内容（灵活复用）
    public function view($page = 'home')  // $page参数默认值为'home'
    {
        // 检查请求的页面是否存在，若不存在显示404错误
        if (! is_file(APPPATH . 'Views/pages/' . $page . '.php')) {
            throw new \CodeIgniter\Exceptions\PageNotFoundException($page);
        }

        // 准备页面标题（首字母大写，如'about'变为'About Page'）
        $data['title'] = ucfirst($page) . ' Page';

        // 加载页面模板（和首页一样的结构，只是中间内容不同）
        echo view('templates/header', $data);
        echo view('pages/' . $page, $data);  // 动态加载对应页面（如pages/about.php）
        echo view('templates/footer');
    }
}